/* 
vote板块要派发的行为对象管理
    voteAction包含很多方法，每一个方法执行，都返回要派发的行为对象
*/
import * as types from '../action-types'

//延迟函数：返回promise实例，在指定的时间后，才会让实例为成功
const delay = (interval = 1000) => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve();
        }, interval)
    })
}
const voteAction = {
    // redux-thunk中间件的语法
    support() {
        return async (dispath) => {
            await delay();
            dispath({
                type: types.VOTE_SUP
            })
        }
    },
    // redux-promise中间件
    async oppose() {
        await delay();
        return {
            type: types.VOTE_OPP
        }
    }
}
export default voteAction